java基础

您所在的位置:网站首页 数据库连接池 对比分析 java基础

java基础

2024-07-15 18:38| 来源: 网络整理| 查看: 265

java基础

三篇文章: 第一篇——从技术角度阐述为什么使用数据库连接池 第二篇——将传统连接和数据库连接池对比 第三篇——总结连接池的好处,工作原理,存在的问题,常用连接池

文章目录 java基础一、什么是连接池二、为什么要使用连接池三、传统的连接机制与数据库连接池的运行机制区别不使用连接池流程使用连接池流程四、连接池工作原理五、连接池主要参数

一、什么是连接池

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。

二、为什么要使用连接池

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。 连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

三、传统的连接机制与数据库连接池的运行机制区别 不使用连接池流程

下面以访问MySQL为例,执行一个SQL命令,如果不使用连接池,需要经过哪些流程。 在这里插入图片描述 不使用数据库连接池的步骤:

TCP建立连接的三次握手MySQL认证的三次握手真正的SQL执行MySQL的关闭TCP的四次握手关闭

可以看到,为了执行一条SQL,却多了非常多我们不关心的网络交互。

优点:

实现简单 缺点:网络IO较多数据库的负载较高响应时间较长及QPS较低应用频繁的创建连接和关闭连接,导致临时对象较多,GC频繁在关闭连接后,会出现大量TIME_WAIT 的TCP状态(在2个MSL之后关闭) 使用连接池流程

在这里插入图片描述

使用数据库连接池的步骤:

第一次访问的时候,需要建立连接。 但是之后的访问,均会复用之前创建的连接,直接执行SQL语句。

优点:

较少了网络开销系统的性能会有一个实质的提升没了麻烦的TIME_WAIT状态 四、连接池工作原理

连接池的工作原理主要由三部分组成,分别为

连接池的建立连接池中连接的使用管理连接池的关闭

一、连接池的建立   一般在系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取。连接池中的连接不能随意创建和关闭,这样避免了连接随意建立和关闭造成的系统开销。

Java中提供了很多容器类可以方便的构建连接池,例如Vector、Stack等。

二、连接池的管理   连接池管理策略是连接池机制的核心,连接池内连接的分配和释放对系统的性能有很大的影响。其管理策略是:

当客户请求数据库连接时:  1)如果池中有空闲连接可用,返回该连接。  2)如果没有空闲连接,池中连接都已用完,创建一个新连接添加到池中。  3)如果池中连接已达到最大连接数,请求按设定的最大等待时间进入等待队列直到有空闲连接可用。  4)如果超出最大等待时间,则抛出异常给客户。

当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过就从连接池中删除该连接,否则保留为其他客户服务。

该策略保证了数据库连接的有效复用,避免频繁的建立、释放连接所带来的系统资源开销。

如果连接长时间空闲,或检测到与服务器的连接已断开,连接池管理器也会将该连接从池中移除。

三、连接池的关闭 当应用程序退出时,关闭连接池中所有的连接,释放连接池相关的资源,该过程正好与创建相反。

五、连接池主要参数

使用连接池时,要配置一下参数

最小连接数:是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费.最大连接数:是连接池能申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连接请求将被加入到等待队列中,这会影响以后的数据库操作最大空闲时间获取连接超时时间超时重试连接次数

这几个感觉就是计算机网络的要点

转载自【https://blog.csdn.net/CrankZ/article/details/82874158】



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3